package com.mall.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mall.commons.utils.PageResult;
import com.mall.commons.utils.R;
import com.mall.domain.PmsBrand;
import com.mall.domain.PmsProductAttribute;
import com.mall.interface1.api.PmsProductAttributeApi;
import com.mall.vo.PmsProductAttributeVo;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

@Service
public class PmsProductAttributeService {

    @DubboReference
    private PmsProductAttributeApi pmsProductAttributeApi;

    /**
     * 根据商品分类的id获取商品属性及属性分类
     *
     * @param productCategoryId
     * @return
     */
    public List<Map<String, Integer>> productCategory(Integer productCategoryId) {
        List<Map<String, Integer>> mapList = pmsProductAttributeApi.productCategory(productCategoryId);
        return mapList;
    }

    /**
     * 添加商品属性信息
     * @param productAttribute
     * @return
     */
    public void create(PmsProductAttribute productAttribute) {
        pmsProductAttributeApi.create(productAttribute);
    }

    /**
     * 批量删除商品属性
     * @param ids
     * @return
     */
    public void deleteAttributeByIds(List<Long> ids) {
        pmsProductAttributeApi.deleteAttributeByIds(ids);
    }

    /**
     * 根据分类查询属性列表或参数列表
     * @param cid
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PageResult list(Integer cid, Integer type, Integer pageNum, Integer pageSize) {
        Page<PmsProductAttribute> page = pmsProductAttributeApi.attributeList(cid, type, pageNum, pageSize);
        //PageResult pageBeanVo = new PageResult();

        return new PageResult(pageNum, pageSize, (int) page.getTotal(), page.getRecords());
    }

    /**
     * 修改商品属性信息
     * @param id
     * @param productAttribute
     */
    public void updateAttribute(Long id, PmsProductAttribute productAttribute) {
        pmsProductAttributeApi.updateAttribute(id,productAttribute);
    }



    /**
     * 查询单个商品属性
     * @return
     */
    public PmsProductAttribute productAttributeById(Integer id) {
        PmsProductAttribute productAttribute=pmsProductAttributeApi.productAttributeById(id);
        return productAttribute;
    }
}
